package day13.thread04;


/**
 * @author Xiao
 * @date 2021/8/6
 */
/**
 * 生产者步骤：
 * *      ①判断桌子上是否有汉堡包如果有就等待，如果没有才生产；
 * *      ②把汉堡包放在桌子上；
 * *      ③叫醒等待的消费者开吃。
 */
public class Productor implements Runnable {
    private Production pd;
    public Productor(Production pd) {
        this.pd = pd;
    }
    @Override
    public void run() {
        while (true) {
            synchronized (pd.getLock()) {
                if (pd.getCount() == 0) {
                    break;
                }
                if (pd.isFlag()) {
                    try {
                        pd.getLock().wait();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                } else {
                    System.out.println("厨师在做汉堡包。");
                    pd.setFlag(true);
                    pd.getLock().notifyAll();
                }

            }

        }
    }
}
